package com.wgu.common.mapper;

import java.lang.reflect.Field;

/**
 * @Author: w
 * @Date: 2019/5/10 16:43
 * @Version 1.0
 */
public class BeanMapper {

    /**
     * 将对象obj1 赋值给 obj2 相同属性名即赋值
     * @param obj1
     * @param obj2
     * @throws Exception
     */
    public void mapper(Object obj1,Object obj2){
        // 如果对象为空，直接返回
        if(obj1==null||obj2==null){
            return;
        }
        try{
            // 获取对象属性名
            Field[] fields1 = obj1.getClass().getDeclaredFields();
            Field[] fields2 = obj2.getClass().getDeclaredFields();
            //遍历并赋值
            for(int i = 0; i<fields1.length; i++){
                Field field1 = fields1[i];
                //设置是否允许访问，不是修改原来的访问权限修饰词。
                field1.setAccessible(true);
                for(int j = 0; j<fields2.length; j++){
                    Field field2 = fields2[j];
                    //设置是否允许访问，不是修改原来的访问权限修饰词。
                    field2.setAccessible(true);
                    // 相同即赋值
                    if(field1.getName().equals(field2.getName())){
                        field2.set(obj2,field1.get(obj1));
                    }
                }
            }
        }catch (Exception e){

        }
    }
}
